import { defineStore } from 'pinia';
import layout from './layout';
import edit from './edit';
import history from './history';

export default defineStore('chart', {
	state: () => ({
		/****************************************************布局****************************************************** */
		...layout.state,
		/****************************************************编辑区域****************************************************** */
		...edit.state,
		/****************************************************历史记录****************************************************** */
		...history.state,
		/****************************************************编辑水印****************************************************** */
		watermarkText: '润道质检',
		/****************************************************按钮******************************* */
		KeyboardActive: {
			ctrl: false,
			space: false
		},
		KeyboardActiveLabel: '',
		RenderComponentList: [],
		componentRefs: {},
		pageId: '',
		pageTabs: [],
		pageData: {},
		pageList: []
	}),
	getters: {
		/****************************************************编辑区域****************************************************** */
		...edit.getters,
		/****************************************************当前编辑的组件*** */
		getTargetData() {
			return this.componentList[this.fetchTargetIndex()];
		}
	},
	actions: {
		/****************************************************布局****************************************************** */
		...layout.actions,
		/****************************************************编辑区域****************************************************** */
		...edit.actions,
		/****************************************************历史记录***************************************************** */
		...history.actions,
		addPageTabs(data) {
			const { id, title } = data;
			if (!this.pageTabs.some((obj) => obj.id === id)) this.pageTabs.push({ id, title });
		}
	}
});
